﻿using System;
using System.ComponentModel;
using System.Linq;

namespace PhantomMvvmToolkit
{
    /// <summary>
    /// This interface inherits from INotifyPropertyChanged, so use this in place of INotifyPropertyChanged.
    /// </summary>
    public interface IPhantomNotifyPropertyChanged : INotifyPropertyChanged
    {
        /// <summary>
        /// Needs to invokes the PropertyChanged event if it is not null.  The OnPropertyChanged extension will fire this 
        /// method when it needs to invoke PropertyChanged.
        /// </summary>
        /// <param name="args">The <see cref="System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
        void InvokePropertyChanged(PropertyChangedEventArgs args);
    }
}
